// 定义品牌管理接口文件
import request from "@/utils/request";
import type {
  GetTrademarkListApiResponse,
  TrademarkItem,
  TrademarkList,
} from "./models/trademarkModels";

/*
  enum 枚举类型
    相当于对象

    Api.getTrademarkListUrl  -> `/admin/product/baseTrademark`
    Api[`/admin/product/baseTrademark`] -> getTrademarkListUrl
*/

// 统一定义接口的请求地址
enum Api {
  getTrademarkListUrl = `/admin/product/baseTrademark`,
  getAllTrademarkListUrl = `/admin/product/baseTrademark/getTrademarkList`,
  addTrademarkUrl = "/admin/product/baseTrademark/save",
  updateTrademarkUrl = "/admin/product/baseTrademark/update",
  delTrademarkUrl = "/admin/product/baseTrademark/remove",
}

// export const getTrademarkListApi = (page: number, limit: number) => {
//   // 接口函数是否需要参数，就看接口文档对应这个接口是否需要参数
//   return request.get<any, GetTrademarkListApiResponse>(
//     `/admin/product/baseTrademark/${page}/${limit}`
//   );
// };

/**
 * 获取所有品牌列表
 * @returns TrademarkList
 */
export const getAllTrademarkListApi = () => {
  return request.get<any, TrademarkList>(Api.getAllTrademarkListUrl);
};

/**
 * 获取品牌分页列表
 * @param page 当前页码
 * @param limit 每页条数
 * @returns GetTrademarkListApiResponse
 */
export const getTrademarkListApi = (page: number, limit: number) => {
  // 接口函数是否需要参数，就看接口文档对应这个接口是否需要参数
  return request.get<any, GetTrademarkListApiResponse>(
    Api.getTrademarkListUrl + `/${page}/${limit}`
  );
};

/**
 * 添加品牌
 * @param tmName 品牌名称
 * @param logoUrl 品牌LOGO
 * @returns null
 */
export const addTrademarkApi = (tmName: string, logoUrl: string) => {
  // 如果参数是1-2个就直接写，参数是3个以上写对象
  return request.post<any, null>(Api.addTrademarkUrl, { tmName, logoUrl });
};

/**
 * 更新品牌
 * @param trademark 品牌数据
 * @returns null
 */
export const updateTrademarkApi = (trademark: TrademarkItem) => {
  return request.put<any, null>(Api.updateTrademarkUrl, trademark);
};

/**
 * 删除品牌
 * @param id 品牌id
 * @returns null
 */
export const delTrademarkApi = (id: number) => {
  return request.delete<any, null>(Api.delTrademarkUrl + `/${id}`);
};
